/* link underlines tend to make hypertext less readable,
   because underlines obscure the shapes of the lower halves of words */
:link, :visited {
    text-decoration: none
}

/* no list-markers by default, since lists are used more often for semantics */
ul, ol {
    list-style: none
}

/* avoid browser default inconsistent heading font-sizes */
/* and pre/code too */
h1, h2, h3, h4, h5, h6, pre, code {
    font-size: 1rem;
}

/* remove the inconsistent (among browsers) default ul,ol padding or margin  */
/* the default spacing on headings does not match nor align with
   normal interline spacing at all, so let's get rid of it. */
/* zero out the spacing around pre, form, body, html, p, blockquote as well */
/* form elements are oddly inconsistent, and not quite CSS emulatable. */
/*  nonetheless strip their margin and padding as well */
ul, ol, li, h1, h2, h3, h4, h5, h6, pre, form, body, html, p, blockquote, fieldset, input, textarea {
    margin: 0;
    padding: 0;
    border: none;
}

/* whoever thought blue linked image borders were a good idea? */
a img, :link img, :visited img {
    border: none;
}

/* de-italicize address */
address {
    font-style: normal;
}

/* firefox focus outline */
:focus {
    outline: none;
}

::-moz-focus-inner {
    border: 0;
}

/* details element arrow */
details > summary {
    list-style: none;
}

details > summary::-webkit-details-marker {
    display: none;
}

/* have IE ignore the detail elements altogether */
@supports not (-ms-ime-align: auto) {
    details summary {
        cursor: pointer;
    }
}

[hidden] {
    display: none;
}

* {
    box-sizing: border-box !important;
}

/* TYPOGRAPHY AND GENERAL SELECTORS */
body,
html {
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;

    background-attachment: fixed;
    color: var(--white);
    font-family: var(--main-font);
    font-size: var(--small-size);
}

h1 {
    font-size: var(--main-size);
    font-weight: 700;
}

h2 {
    font-size: var(--medium-size);
    font-weight: 600;
}

h3 {
    font-size: var(--small-size);
    font-weight: 600;
}

p {
    font-family: var(--main-font);
    font-size: var(--small-size);
    font-weight: 400;
    margin-bottom: var(--small-size);
}

textarea {
    font-family: var(--main-font);
    font-weight: 400;
}

ul {
    text-decoration: none;
    margin: 0;
    padding: 0;
    list-style: none;
}

li {
    margin: 0;
    padding: 0;
}

/* BUTTONS AND FILEPICKER */
button {
    cursor: pointer !important;
    float: right !important;
    align-self: end !important;
}
input {
    cursor: text !important;
}

button,
input {
    all: unset;
    padding: 5px 10px;
}
button,
select,
input:not([type=text]) {
    cursor: pointer !important;
}
input:not([type=button], [type=color], [type=checkbox], [type=radio]) {
    cursor: auto !important;
}

/*noinspection CssInvalidPseudoSelector*/
*|*::-moz-button-content {
    all: unset;
}

input[type=checkbox] {
    all: unset;

    display: inline-block;
    width: 1em;
    height: 1em;
}
input[type=radio] {
    all: unset;
    cursor: pointer !important;

    display: inline-block;
    width: 1em;
    height: 1em;
    border-radius: 50%;
    margin: 3px 3px 0 5px;
}

/* file selector */
input[type=file] {
    all: unset;
    display: block;
    width: 100%;
    border-radius: var(--unit-size) !important;
}

input + label {
    all: unset;
    align-self: center;
}

/* button part of file selector */
::file-selector-button {
    cursor: pointer;

    background-color: unset;

    border: unset;
    margin: 3px;
}
